package com.tanhua.task;

/*
*  springtask
*         1 ： 开启定时调度 @EnableScheduling
*
*         2 ： 编写类和方法
*                  类需要交给ioc容器管理
*                  方法：不能有参数 不能有返回值 方法名任意
*
*         3 ：设定要执行的时间
*                   @Scheduled
* */

import cn.hutool.core.date.DateUtil;
import com.tanhua.domain.AnalysisByDay;
import com.tanhua.mapper.AnalysisByDayMapper;
import com.tanhua.mapper.LogMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

@Component
public class MyTask {

    @Autowired
    private LogMapper logMapper;

    @Autowired
    private AnalysisByDayMapper analysisByDayMapper;

    @Scheduled(cron = "30 09 12 * * ?")  //定的时间  七子表达式
    public void aaa(){
        //统计数据
        //当日总注册人数
        System.out.println("我开始统计拉~~~");
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        String time = simpleDateFormat.format(new Date());
        Integer numRegistered=logMapper.findNumRegistered("0102",time);
        //当日登录人数
        Integer numLogin=logMapper.findNumRegistered("0101",time);
        //当日活跃人数
        Integer numActive=logMapper.findNumActive(time);
        //当日留存数
        String yesterday = DateUtil.yesterday().toString("yyyy-MM-dd");
        Integer numRetention1d=logMapper.findNumRetention1d(yesterday,time);

        //统计数据tb_analysis_by_day（一条增加语句）
        AnalysisByDay analysisByDay = new AnalysisByDay();
        analysisByDay.setNumRegistered(numRegistered);
        analysisByDay.setNumLogin(numLogin);
        analysisByDay.setNumActive(numActive);
        analysisByDay.setNumRetention1d(numRetention1d);

        analysisByDay.setRecordDate(DateUtil.parseDate(time));
        analysisByDay.setCreated(new Date()); //创建时间
        analysisByDay.setUpdated(new Date()); //修改时间

        analysisByDayMapper.insert(analysisByDay);

    }
}
